/*
 * Copyright (c) 2019 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/* CAMERA GPIO standardization */
&pio {
	camera_pins_cam0_rst0: cam0@0 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO29__FUNC_GPIO29>;
			slew-rate = <1>; /*direction 0:in, 1:out*/
			output-low;/*output_low or high*/
		};
	};
	camera_pins_cam0_rst1: cam0@1 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO29__FUNC_GPIO29>;
			slew-rate = <1>;
			output-high;
		};
	};
	camera_pins_cam0_pnd0: cam0@2 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO30__FUNC_GPIO30>;
			slew-rate = <1>;
			output-low;
		};
	};
	camera_pins_cam0_pnd1: cam0@3 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO30__FUNC_GPIO30>;
			slew-rate = <1>;
			output-high;
		};
	};
	camera_pins_cam1_rst0: cam1@0 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO22__FUNC_GPIO22>;
			slew-rate = <1>; /*direction 0:in, 1:out*/
			output-low;/*output_low or high*/
		};
	};
	camera_pins_cam1_rst1: cam1@1 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO22__FUNC_GPIO22>;
			slew-rate = <1>;
			output-high;
		};
	};
	camera_pins_cam1_pnd0: cam1@2 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO23__FUNC_GPIO23>;
			slew-rate = <1>;
			output-low;
		};
	};
	camera_pins_cam1_pnd1: cam1@3 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO23__FUNC_GPIO23>;
			slew-rate = <1>;
			output-high;
		};
	};
	camera_pins_cam_ldo_sub_vcamd_0: cam1@vcamd0 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO9__FUNC_GPIO9>;
			slew-rate = <1>;
			output-low;
		};
	};
	camera_pins_cam_ldo_sub_vcamd_1: cam1@vcamd1 {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO9__FUNC_GPIO9>;
			slew-rate = <1>;
			output-high;
		};
	};
	camera_pins_cam0_mclk_on: camera_pins_cam0_mclk_on {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO126__FUNC_CMMCLK0>;
		};
	};
	camera_pins_cam0_mclk_off: camera_pins_cam0_mclk_off {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO126__FUNC_GPIO126>;
		};
	};
	camera_pins_cam1_mclk_on: camera_pins_cam1_mclk_on {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO126__FUNC_CMMCLK0>;
		};
	};
	camera_pins_cam1_mclk_off: camera_pins_cam1_mclk_off {
		pins_cmd_dat {
			pinmux  = <PINMUX_GPIO126__FUNC_GPIO126>;
		};
	};
	camera_pins_default: camdefault {
	};
};

&kd_camera_hw1 {
	pinctrl-names = "default",
			"cam0_rst0", "cam0_rst1", "cam0_pnd0", "cam0_pnd1",
			"cam1_rst0", "cam1_rst1", "cam1_pnd0", "cam1_pnd1",
			"cam_ldo_sub_vcamd_0", "cam_ldo_sub_vcamd_1",
			"cam0_mclk_on", "cam0_mclk_off",
			"cam1_mclk_on", "cam1_mclk_off";

	pinctrl-0 = <&camera_pins_default>;
	pinctrl-1 = <&camera_pins_cam0_rst0>;
	pinctrl-2 = <&camera_pins_cam0_rst1>;
	pinctrl-3 = <&camera_pins_cam0_pnd0>;
	pinctrl-4 = <&camera_pins_cam0_pnd1>;
	pinctrl-5 = <&camera_pins_cam1_rst0>;
	pinctrl-6 = <&camera_pins_cam1_rst1>;
	pinctrl-7 = <&camera_pins_cam1_pnd0>;
	pinctrl-8 = <&camera_pins_cam1_pnd1>;
	pinctrl-9 = <&camera_pins_cam_ldo_sub_vcamd_0>;
	pinctrl-10 = <&camera_pins_cam_ldo_sub_vcamd_1>;
	pinctrl-11 = <&camera_pins_cam0_mclk_on>;
	pinctrl-12 = <&camera_pins_cam0_mclk_off>;
	pinctrl-13 = <&camera_pins_cam1_mclk_on>;
	pinctrl-14 = <&camera_pins_cam1_mclk_off>;

	cam0_vcama-supply = <&mt_pmic_vcama_ldo_reg>;
	cam0_vcamd-supply = <&mt_pmic_vcamd_ldo_reg>;
	cam0_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>;
	cam1_vcama-supply = <&mt_pmic_vcama_ldo_reg>;
	cam1_vcamd-supply = <&mt_pmic_vcamd_ldo_reg>;
	cam1_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>;

	status = "okay";

};
/* CAMERA GPIO end */
